package org.dromara.netbar.domain.bo;

import org.dromara.netbar.domain.NetbarCouponMember;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.netbar.domain.vo.NetbarCouponVo;

/**
 * 会员-卡券关联业务对象 netbar_coupon_member
 *
 * @author Lion Li
 * @date 2025-07-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = NetbarCouponMember.class, reverseConvertGenerate = false)
public class NetbarCouponMemberBo extends BaseEntity {

    private String tenantId;
    /**
     * 卡券发放记录唯一ID
     */
    @NotNull(message = "卡券发放记录唯一ID不能为空", groups = { EditGroup.class })
    private Long couponMemberId;

    /**
     * 卡券关联ID
     */
    @NotNull(message = "卡券关联ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long couponId;

    /**
     * 会员关联ID
     */
    @NotNull(message = "会员关联ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long memberId;

    private List<Long> memberIds;

    /**
     * 是否已使用（0未使用 1已使用）
     */
    private String status;

    /**
     * 使用时间
     */
    private Date useTime;

    private Long couponCount;

    /**
     * 是否可以使用代金券
     */
    private boolean useDjFlag;
}
